一文详解基于知识图谱的问答系统KBQA,看完就能开干了【金融 智能制造 珠峰书 企业知识管理】
许多企业在经营过程中积累了大量的知识,构筑了企业的核心竞争力。但深究则会发现,企业内部对知识的利用并非充分,存在大量知识获取不到或者获取效率低下的问题,甚至出现不少“死知识”——在企业内部再也无法被利用。这种种情况已经影响到企业的经营效率和竞争力,并在发展和创新中出现被动情况。众所周知,汽车行业是产值规模最大的行业,AIAG 和德勤在2020年联合发布的报告提到, “(汽车行业)很难解决经验流失的问题,但不解决这个问题对汽车行业来说是一个巨大的风险。”知识图谱的出现,使得知识的沉淀和充分利用成为了可能。基于珠峰书《知识图谱:认知智能理论与实战》提出的智能问答Z型框架,本文介绍了基于知识图谱的问答系统,是帮助企业充分利用已沉淀知识的有效手段和方法。
1.什么是基于知识图谱的智能问答?
在搜索引擎里面输入问题“川普他老婆多高”或者“1995年的美国总统是谁?”。使用不同的搜索引擎搜索得到了不一样的效果:左边的直接给我们答案(这个是基于谷歌的知识图谱来做的),右边的结果虽然给出了一堆搜索结果,但我们可能需要花费很多时间才能找到想要的结果。从搜索的效果来看,左右两边的差别非常大。
基于知识图谱的问答系统是当前信息获取的最智能的方法。知识图谱最早在2012 年由谷歌提出,经过10年的发展已经跨过新技术应用的“鸿沟”,成为企业可以用于沉淀和应用知识的最佳方法。基于知识图谱的问答系统允许人们输入问题描述文本(类似人类提问一样的大段文本,而不是使用关键词),系统自动理解所输入的文本,并直接给出答案或者给出按匹配度排序的多个答案。
基于知识图谱的智能问答(KBQA)通过对自然语言处理(Natural language processing,NLP)、信息检索(Information retrieval,IR)、知识检索(Knowledge retrieval)、知识推理(Knowledge Reasoning,KR)、自然语言生成(Natural language generation,NLG) 等人工智能技术的综合运用,来帮助人们更自然、便捷和精准地获取所需知识。
事实上,KBQA 已经在大量的2C 中规模化使用了,除了搜索引擎之外,像Siri、小度、小爱、美团、车载系统、智能座舱等也使用 KBQA 来 提供服务。我所在的达观数据公司所提供的知识图谱平台也包含KBQA 系统,并已成功应用在金融、制造等大量的知名企业中。
2.基于知识图谱的智能问答 Z 型框架
KBQA 如此有用,对于企业内部,如何建设一个基于知识图谱的问答系统来帮助企业提升知识的应用程度呢?珠峰书《知识图谱:认知智能理论与实战》一书提供了知识图谱技术非常详细的介绍,既有理论解析,又给出了实战的代码示例,是学习和使用知识图谱的最佳教材。
珠峰书第八章介绍了实现基于知识图谱的智能问答系统的 Z型框架,如下图所示。基于该框架可以方便的实现系统,将企业内的知识有效地利用起来。下面详细解析该框架。
1) 文本理解
文本理解是基于 NLP 技术对输入的文本内容进行,通常包括多个子步骤:
文本分析
首先对问句做字符串的处理,比如标点处理、特殊字符处理、英文的全角字符和半角字符之间切换以及各种停用词的处理等。需要注意的是有时候处理图谱中的实体内容是会存在误处理。以减号“-”为例,比如“战斗机F-22”。假设库里有一个F-22实体,如果我们把所有的减号都去掉,就可能对后续的识别产生非常大的负面作用。
词法分析
词法分析就是我们常说的分词和词性标注,它可以更好的帮助我们完成接下来的处理环节。在实际使用时可能会有很多“坑”要注意。比如特斯拉的一款产品“Model 3”,通常在分词时会分成“Model”、“3”,这个结果会导致无法准确地识别出实体。在实际操作过程中,我们可以用知识图谱本身的内容来增强分词效果。
纠错
纠错会利用知识图谱的模式和实体来对实现。
同义转换
同义转换解决的是不同文本描述相同事物的识别和归一。比如,F-22, “F22战斗机”,F22,“F-22 Fighter”, Raptor, 猛禽, “洛克希德·马丁F-22”,“洛马 F22”等等。使用深度学习模型或者领域词表都是可行的方法。
2) 意图识别
当问答系统“听懂”了用户的文本之后,需要进一步理解用户的意图,并据此做出合适的响应,这是返回用户友好型答案的关键步骤。意图识别通常可分为两大类,即定位输入问题所属的场景和分析输入问题的目的。场景划分是为了进一步缩小问题的范围,为更精准地获取答案做准备;分析的目的是预先对问题的答案进行分类,为生成用户友好型答案做准备。
意图识别用于识别用户的目的,它往往会与一些属性关联在一起。比如“要获取一个文档”或“要了解一个时间”
3) 知识链接
在理解问题的基础上,需要将其中的核心词汇链接到知识图谱模式和知识图谱上。在实践中体现为,利用文本匹配、语义检索和实体链接等技术,为核心词汇匹配到实体类型、关系类型、属性名、实体、属性值等。
实体链接是常见的技术,下图是常见的一个流程。更多的内容可参阅参考文献[2]
4) 模板匹配
模板匹配是一种基于规则和模板实现智能问答的方法,虽然看起来不那么智能,但这是一种高效率、低耗能的方法。人类在遇到问题及处理问题时也有这么一套体系,比如在考驾照学习倒车入库时,教练会给出一系列固定的步骤,让学员遵照着学习,从而能够快速“学会并熟练掌握”倒车入库技能,进而通过驾照考试。这在本质上就是基于规则和模板的应用。
在模板匹配模块,可以将历史上沉淀的 FAQ 问答对充分利用起来。同时,基于模板匹配模块的后台配置,也可以很方便实现长期可持续的知识运营工作。
5) 子图检索
子图检索是指根据文本理解、意图识别、知识链接和模板匹配的处理结果,从知识图谱存储系统中检索符合条件的子图。
子图检索会涉及多类技术,比如规则,基于图数据库的查询语言的检索,使用 ElasticSearch 检索,在检索过程中使用知识推理、语义相似度等。
在使用 ElasticSearch 中,需要把知识图谱的所有内容都进入 ElasticSearch 索引中,包括实体索引、实体-属性-属性值三元组索引,实体-关系-实体索引等,以及使用不同索引方法,比如 text 和 string ,用来实现模糊的检索和精确的检索等等。
6) 专业模型
要做好 KBQA,仅仅使用子图检索是做不好的,需要使用知识计算、知识推理的方法来达到业务的目标。比如说,当查找两个实体之间可能存在的关系时,仅用检索可能无法发现这些关系,这时可能需要触发图计算(参考《知识图谱:认知智能理论与实战》一书第6章)、或是图神经网络相关的知识推理(参考《知识图谱:认知智能理论与实战》一书第7章)。举个简单的例子,我们在疫情期间会遇到查找两个公司可能存在的关系的场景,那要如何查找呢?如果有了一个企业工商信息的图谱之后,我们可以询问问答系统:A公司和B公司什么关系?系统首先获取 A公司和B公司输入,然后通过问题分类确定查找关系类型,从而触发路径分析算法,去查找起点是 A公司终点是B公司的一些路径,结果可能是最短路径或多个路径。这些路径让我们能够理解 A 公司和 B 公司之间存在的关系,以上所需的知识推理相关算法和模型。
7) 复杂问题处理
有时我们会遇到一些专有的、较为复杂的问题,使用通用逻辑、方法和算法无法很好地解决这些问题,此时可以编写专门的处理方法,有针对性地处理这些复杂问题。这包括两个方面的内容:
解决Corner case
解决特定的场景,比如和权限申请相结合,和消息推送相结合等等
8) 重排序
如果我们的答案是有多个的,我们需要对它进行排序,使得最符合问题的答案排在前面。在搜索引擎中常用的各类 Ranking算法都是可以使用的,比如pair‐wise 分类的方法。
9) 答案生成
答案生成的目的是使用合适的方法来将答案呈现出来,几个内容是在实践中应当思考的:
统计转换:
有时我们需要做统计转换的工作,比如说我们搜索“川普有几个孩子”,这时需要返回的是“3”而不是列表,那么你可能就需要通过统计转换,或者通过相关规则、算法实现。
三元组生成文本和子图生成文本:
我们可以利用NLG相关的算法来生成一句话来回答问题。基于NLG和知识谱结合的三元组生成文本目前做得还不是特别好,这也是当前研究的热门领域之一。
业务规则引擎:
业务规则引擎可以帮助我们过滤或增强,它属于业务偏好内容,每一次具体应用使用方法都有不同,很多时候是属于dirty work,就是我们把各种规则融合起来。
上图是其中的一种算法或者是数据集,但目前还处于探索阶段,使用效果不是特别好。可以使用NLPCC 2018 KBQA & KBQG的数据集进行训练。
举个例子,问谁写了一个中国平安的研报,我们会给出结果,我们目前的方法是给出一个列表或可视化图表展示结果。如果在云助手或微信公众号中做问答,生成一句话或一段话效果会更好。我们需要使用三元组到TST的生成算法来实现。
举例:
问句:沈小娟写的中国平安的研报有哪些
知识检索三元组结果:
沈小娟 || 撰写 || 一马当先,铸就典范
沈小娟 || 撰写 || 寿险转型深化,新业务价值率稳健增长
一马当先,铸就典范 || 分析 || 中国平安
寿险转型深化,新业务价值率稳健增长 || 分析 || 中国平安
答句:
沈小娟撰写的中国平安的研报有“一马当先,铸就典范”和“寿险转型深化,新业务价值率稳健增长”
3.应用示例
例子之一:生产口罩的上市公司有哪些?
这个问题在疫情期间非常热门,因为现在生产口罩利润非常高,这也说明相关公司值得投资。在了解生产口罩的公司时,如果只用普通搜索,得到的结果并不直观,需要大量时间去分析结果。但如果我们有效果很好的的知识图谱做知识问答,我们就能得到完全不同的结果。
左:普通搜索引擎搜索结果 右:知识问答系统搜索结果
例子之二:智能制造核心知识问答
4.总结
弗朗西斯· 培根在其书《 Of The Advancement of Learning》说过“人类的智慧和知识赖书籍得以保存,免于时间的不公正待遇而永远不断更新。”正因此,“书籍是人类进步的阶梯”,王文广在其书《知识图谱:认知智能理论与实战》一书也“将知识印刷到纸上形成书籍,构成了现代的知识传播的基石,推动着社会进步、科技发展和文明前进。正所谓‘书籍是人类进步的阶梯’,究其本质则是‘知识是人类进步的阶梯’,而书籍是这个阶段人类知识的代表。”相同的道理,承载知识的知识图谱,也将是人工智能进步的阶梯。(冯志伟:认可《知识图谱》作者王文广的观点“知识图谱是人工智能进步的阶梯”)
本文则介绍了基于知识图谱的智能问答系统,提供了方便人们获取知识的方法,对于大型企业,将所积累的知识构建到知识图谱中,并以智能问答的方式为员工便捷使用,也将持续提升其竞争力。也因此,微软-仪电人工智能创新院总经理朱琳女士在为《知识图谱:认知智能理论与实战》一书作序中提出论断“知识图谱是企业获得持续竞争优势的关键技术”。(知识图谱:企业获得持续竞争优势的关键技术)
5. 参考文献
王文广, 知识图谱:认知智能理论与实战, 电子工业出版社, 2022
Sevgili Özgea et al. Neural entity linking: A survey of models based on deep learning[J] // Semantic Web, 2022, 13(3):527-570
AIAG & Deloitte, Quality 2020